/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ereconquista.web;

import com.ereconquista.dao.UsuarioDAO;
import com.ereconquista.modelo.Usuario;
import com.ereconquista.util.JsfUtil;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author Claudio
 */
@ManagedBean
@ViewScoped
public class ActivacionUsuarioBean implements Serializable{
    
    private String idUsuario;
        
    private UsuarioDAO usuarioDAO;
            
    @ManagedProperty(value = "#{usuarioSessionBean}")
    private UsuarioSessionBean usuarioSession;
    
    @ManagedProperty(value = "#{aplicationBean}")
    private AplicationBean aplicationBean;
        
    @ManagedProperty(value = "#{mailFactory}")
    private MailFactory mailFactoryBean;

    /**
     * Creates a new instance of ActivacionesBean
     */
    public ActivacionUsuarioBean() {
        
    }
    
    @PostConstruct
    private void init(){
        
//        System.err.println("ActivacionUsuarioBean");
        usuarioDAO = new UsuarioDAO();
        
    }
    
    public void activarUsuario(){

        if(idUsuario!=null){

            Usuario u = usuarioDAO.getUsuarioByCodigo(idUsuario);

            if(u==null){
                idUsuario = null;
                JsfUtil.addErrorMessage("El usuario solicitado no existe");
                return;
            }    
                        
            if(u.getActivo().equals("N")){
                try {
                    u.setActivo("S");
                    usuarioDAO.editar(u);
                    usuarioSession.setUsuario(u);
                    usuarioSession.setEstaRegistrado(true);
                    JsfUtil.addInfoMessage("Felicitaciones! El usuario ha sido activado exitosamente! Muchas gracias");
                } catch (Exception ex) {
                    JsfUtil.addErrorMessage("Lo sentimos, ha ocurrido un error y no pudimos activar el usuario");
                    Logger.getLogger(ActivacionUsuarioBean.class.getName()).log(Level.SEVERE, null, ex);
                }
            }else{
                JsfUtil.addWarningMessage("El usuario ya se encuentra activo");
            }
            
        }
        idUsuario = null;
    }
  
    public UsuarioSessionBean getUsuarioSession() {
        return usuarioSession;
    }

    public void setUsuarioSession(UsuarioSessionBean usuarioSession) {
        this.usuarioSession = usuarioSession;
    }

    public AplicationBean getAplicationBean() {
        return aplicationBean;
    }

    public void setAplicationBean(AplicationBean aplicationBean) {
        this.aplicationBean = aplicationBean;
    }

    public MailFactory getMailFactoryBean() {
        return mailFactoryBean;
    }

    public void setMailFactoryBean(MailFactory mailFactoryBean) {
        this.mailFactoryBean = mailFactoryBean;
    }

    public String getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(String idUsuario) {
        this.idUsuario = idUsuario;
    }
    
    
    
}
